<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<meta name="theme-color" content="#222"><meta name="generator" content="Hexo 6.3.0">

  <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
  <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
  <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
  <link rel="mask-icon" href="/images/logo.svg" color="#222">

<link rel="stylesheet" href="/css/main.css">



<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css" integrity="sha256-CTSx/A06dm1B063156EVh15m6Y67pAjZZaQc89LLSrU=" crossorigin="anonymous">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.1.1/animate.min.css" integrity="sha256-PR7ttpcvz8qrF57fur/yAx1qXMFJeJFiA6pSzWi0OIE=" crossorigin="anonymous">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fancyapps-ui/5.0.24/fancybox/fancybox.css" integrity="sha256-vQkngPS8jiHHH0I6ABTZroZk8NPZ7b+MUReOFE9UsXQ=" crossorigin="anonymous">

<script class="next-config" data-name="main" type="application/json">{"hostname":"rjyblog.gitee.io","root":"/","images":"/images","scheme":"Pisces","darkmode":false,"version":"8.18.2","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12},"copycode":{"enable":true,"style":null},"fold":{"enable":false,"height":500},"bookmark":{"enable":false,"color":"#222","save":"auto"},"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"stickytabs":false,"motion":{"enable":true,"async":false,"transition":{"menu_item":"fadeInDown","post_block":"fadeIn","post_header":"fadeInDown","post_body":"fadeInDown","coll_header":"fadeInLeft","sidebar":"fadeInUp"}},"prism":false,"i18n":{"placeholder":"搜索...","empty":"没有找到任何搜索结果：${query}","hits_time":"找到 ${hits} 个搜索结果（用时 ${time} 毫秒）","hits":"找到 ${hits} 个搜索结果"},"path":"/search.xml","localsearch":{"enable":true,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false}}</script><script src="/js/config.js"></script>

    <meta name="description" content="本文详细介绍了连接拦截器的处理机制，以及连接池相关的逻辑处理。">
<meta property="og:type" content="article">
<meta property="og:title" content="okhttp详解系列五：连接拦截器 ConnectInterceptor">
<meta property="og:url" content="https://rjyblog.gitee.io/posts/ee27d764.html">
<meta property="og:site_name" content="任建勇的博客">
<meta property="og:description" content="本文详细介绍了连接拦截器的处理机制，以及连接池相关的逻辑处理。">
<meta property="og:locale" content="zh_CN">
<meta property="article:published_time" content="2023-08-21T02:04:24.000Z">
<meta property="article:modified_time" content="2023-12-29T03:40:58.139Z">
<meta property="article:author" content="Jason">
<meta property="article:tag" content="okhttp">
<meta name="twitter:card" content="summary">


<link rel="canonical" href="https://rjyblog.gitee.io/posts/ee27d764.html">



<script class="next-config" data-name="page" type="application/json">{"sidebar":"","isHome":false,"isPost":true,"lang":"zh-CN","comments":true,"permalink":"https://rjyblog.gitee.io/posts/ee27d764.html","path":"posts/ee27d764.html","title":"okhttp详解系列五：连接拦截器 ConnectInterceptor"}</script>

<script class="next-config" data-name="calendar" type="application/json">""</script>
<title>okhttp详解系列五：连接拦截器 ConnectInterceptor | 任建勇的博客</title>
  








  <noscript>
    <link rel="stylesheet" href="/css/noscript.css">
  </noscript>
</head>

<body itemscope itemtype="http://schema.org/WebPage" class="use-motion">
  <div class="headband"></div>

  <main class="main">
    <div class="column">
      <header class="header" itemscope itemtype="http://schema.org/WPHeader"><div class="site-brand-container">
  <div class="site-nav-toggle">
    <div class="toggle" aria-label="切换导航栏" role="button">
        <span class="toggle-line"></span>
        <span class="toggle-line"></span>
        <span class="toggle-line"></span>
    </div>
  </div>

  <div class="site-meta">

    <a href="/" class="brand" rel="start">
      <i class="logo-line"></i>
      <p class="site-title">任建勇的博客</p>
      <i class="logo-line"></i>
    </a>
  </div>

  <div class="site-nav-right">
    <div class="toggle popup-trigger" aria-label="搜索" role="button">
        <i class="fa fa-search fa-fw fa-lg"></i>
    </div>
  </div>
</div>



<nav class="site-nav">
  <ul class="main-menu menu"><li class="menu-item menu-item-home"><a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a></li><li class="menu-item menu-item-tags"><a href="/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>标签</a></li><li class="menu-item menu-item-categories"><a href="/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类</a></li>
      <li class="menu-item menu-item-search">
        <a role="button" class="popup-trigger"><i class="fa fa-search fa-fw"></i>搜索
        </a>
      </li>
  </ul>
</nav>



  <div class="search-pop-overlay">
    <div class="popup search-popup"><div class="search-header">
  <span class="search-icon">
    <i class="fa fa-search"></i>
  </span>
  <div class="search-input-container">
    <input autocomplete="off" autocapitalize="off" maxlength="80"
           placeholder="搜索..." spellcheck="false"
           type="search" class="search-input">
  </div>
  <span class="popup-btn-close" role="button">
    <i class="fa fa-times-circle"></i>
  </span>
</div>
<div class="search-result-container no-result">
  <div class="search-result-icon">
    <i class="fa fa-spinner fa-pulse fa-5x"></i>
  </div>
</div>

    </div>
  </div>

</header>
        
  
  <aside class="sidebar">

    <div class="sidebar-inner sidebar-nav-active sidebar-toc-active">
      <ul class="sidebar-nav">
        <li class="sidebar-nav-toc">
          文章目录
        </li>
        <li class="sidebar-nav-overview">
          站点概览
        </li>
      </ul>

      <div class="sidebar-panel-container">
        <!--noindex-->
        <div class="post-toc-wrap sidebar-panel">
            <div class="post-toc animated"><ol class="nav"><li class="nav-item nav-level-2"><a class="nav-link" href="#%E8%BF%9E%E6%8E%A5%E6%B1%A0%E6%9F%A5%E6%89%BE%E5%8F%AF%E7%94%A8%E8%BF%9E%E6%8E%A5"><span class="nav-text">连接池查找可用连接</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E8%BF%9E%E6%8E%A5%E6%8B%A6%E6%88%AA%E5%99%A8%E7%B1%BB%E5%9B%BE%E7%BB%93%E6%9E%84"><span class="nav-text">连接拦截器类图结构</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E5%A4%87%E6%B3%A8"><span class="nav-text">备注</span></a></li></ol></div>
        </div>
        <!--/noindex-->

        <div class="site-overview-wrap sidebar-panel">
          <div class="site-author animated" itemprop="author" itemscope itemtype="http://schema.org/Person">
    <img class="site-author-image" itemprop="image" alt="Jason"
      src="/images/avatar.png">
  <p class="site-author-name" itemprop="name">Jason</p>
  <div class="site-description" itemprop="description"></div>
</div>
<div class="site-state-wrap animated">
  <nav class="site-state">
      <div class="site-state-item site-state-posts">
        <a href="/archives/">
          <span class="site-state-item-count">66</span>
          <span class="site-state-item-name">日志</span>
        </a>
      </div>
      <div class="site-state-item site-state-categories">
          <a href="/categories/">
        <span class="site-state-item-count">13</span>
        <span class="site-state-item-name">分类</span></a>
      </div>
      <div class="site-state-item site-state-tags">
          <a href="/tags/">
        <span class="site-state-item-count">23</span>
        <span class="site-state-item-name">标签</span></a>
      </div>
  </nav>
</div>

        </div>
      </div>
    </div>

    
  </aside>


    </div>

    <div class="main-inner post posts-expand">


  


<div class="post-block">
  
  

  <article itemscope itemtype="http://schema.org/Article" class="post-content" lang="zh-CN">
    <link itemprop="mainEntityOfPage" href="https://rjyblog.gitee.io/posts/ee27d764.html">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="image" content="/images/avatar.png">
      <meta itemprop="name" content="Jason">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="任建勇的博客">
      <meta itemprop="description" content="">
    </span>

    <span hidden itemprop="post" itemscope itemtype="http://schema.org/CreativeWork">
      <meta itemprop="name" content="okhttp详解系列五：连接拦截器 ConnectInterceptor | 任建勇的博客">
      <meta itemprop="description" content="本文详细介绍了连接拦截器的处理机制，以及连接池相关的逻辑处理。">
    </span>
      <header class="post-header">
        <h1 class="post-title" itemprop="name headline">
          okhttp详解系列五：连接拦截器 ConnectInterceptor
        </h1>

        <div class="post-meta-container">
          <div class="post-meta">
    <span class="post-meta-item">
      <span class="post-meta-item-icon">
        <i class="far fa-calendar"></i>
      </span>
      <span class="post-meta-item-text">发表于</span>

      <time title="创建时间：2023-08-21 10:04:24" itemprop="dateCreated datePublished" datetime="2023-08-21T10:04:24+08:00">2023-08-21</time>
    </span>
    <span class="post-meta-item">
      <span class="post-meta-item-icon">
        <i class="far fa-calendar-check"></i>
      </span>
      <span class="post-meta-item-text">更新于</span>
      <time title="修改时间：2023-12-29 11:40:58" itemprop="dateModified" datetime="2023-12-29T11:40:58+08:00">2023-12-29</time>
    </span>
    <span class="post-meta-item">
      <span class="post-meta-item-icon">
        <i class="far fa-folder"></i>
      </span>
      <span class="post-meta-item-text">分类于</span>
        <span itemprop="about" itemscope itemtype="http://schema.org/Thing">
          <a href="/categories/okhttp/" itemprop="url" rel="index"><span itemprop="name">okhttp</span></a>
        </span>
    </span>

  
</div>

            <div class="post-description">本文详细介绍了连接拦截器的处理机制，以及连接池相关的逻辑处理。</div>
        </div>
      </header>

    
    
    
    <div class="post-body" itemprop="articleBody"><ul>
<li><a href="/posts/78efaca4.html" title="okhttp详解系列一：开篇">okhttp详解系列一：开篇</a></li>
<li><a href="/posts/8e83ed63.html" title="okhttp详解系列二：重试重定向拦截器">okhttp详解系列二：重试重定向拦截器</a></li>
<li><a href="/posts/6e2b1d41.html" title="okhttp详解系列三：桥拦截器 BridgeInterceptor">okhttp详解系列三：桥拦截器 BridgeInterceptor</a></li>
<li><a href="/posts/37107c2e.html" title="okhttp详解系列四：缓存拦截器">okhttp详解系列四：缓存拦截器</a></li>
<li><a href="/posts/ee27d764.html" title="okhttp详解系列五：连接拦截器 ConnectInterceptor">okhttp详解系列五：连接拦截器 ConnectInterceptor</a></li>
<li><a href="/posts/73cf04e1.html" title="okhttp详解系列六：服务请求拦截器 CallServerInterceptor">okhttp详解系列六：服务请求拦截器 CallServerInterceptor</a>

</li>
</ul>
<p>连接拦截器（ConnectInterceptor）负责与服务器建立网络连接，连接缓存池、dns解析、https证书校验等都在连接拦截器阶段来执行。连接拦截器类中的代码非常少，主要逻辑都在Exchange的初始化中：</p>
<figure class="highlight kotlin"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">object</span> ConnectInterceptor : Interceptor &#123;</span><br><span class="line">  <span class="meta">@Throws(IOException::class)</span></span><br><span class="line">  <span class="keyword">override</span> <span class="function"><span class="keyword">fun</span> <span class="title">intercept</span><span class="params">(chain: <span class="type">Interceptor</span>.<span class="type">Chain</span>)</span></span>: Response &#123;</span><br><span class="line">    <span class="keyword">val</span> realChain = chain <span class="keyword">as</span> RealInterceptorChain</span><br><span class="line">    <span class="comment">// 1. 初始化Exchange</span></span><br><span class="line">    <span class="keyword">val</span> exchange = realChain.call.initExchange(chain)</span><br><span class="line">    <span class="keyword">val</span> connectedChain = realChain.copy(exchange = exchange)</span><br><span class="line">    <span class="comment">// 2. 交给下一个拦截器进行处理，如果用户注册了网络拦截器，</span></span><br><span class="line">    <span class="comment">//  下一个拦截器就是用户注册的网络拦截器</span></span><br><span class="line">    <span class="keyword">val</span> result = connectedChain.proceed(realChain.request)</span><br><span class="line">    <span class="keyword">return</span> result</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>

<p>连接拦截器的主要时序：</p>
<pre class="mermaid">

zenuml
ConnectInterceptor.intercept {
    RealCall.initExchange {
        ExchangeCodec &#x3D; ExchangeFinder.find {
            RealConnection &#x3D; findHealthyConnection {
                findConnection
            }
            ExchangeCodec &#x3D; RealConnection.newCodec {
                if (http2) {
                    &quot;new Http2ExchangeCodec()&quot;
                } else {
                    &quot;new Http1ExchangeCodec()&quot;
                }
            }
        }
        new Exchange
    }
    RealInterceptorChain.&quot;copy(传入Exchange)&quot;
    RealInterceptorChain.&quot;proceed(把网络请求交给下一个拦截器)&quot;
}
</pre>

<h2 id="连接池查找可用连接"><a href="#连接池查找可用连接" class="headerlink" title="连接池查找可用连接"></a>连接池查找可用连接</h2><p>下面流程图是从<code>okhttp3.internal.connection.ExchangeFinder#findConnection</code>开始进行分析：</p>
<?xml version="1.0" encoding="us-ascii" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="1274px" preserveAspectRatio="none" style="width:437px;height:1274px;background:#FFFFFF;" version="1.1" viewBox="0 0 437 1274" width="437px" zoomAndPan="magnify"><defs/><g><ellipse cx="217.5" cy="20" fill="#222222" rx="10" ry="10" style="stroke:#222222;stroke-width:1.0;"/><polygon fill="#F1F1F1" points="156,100.0117,279,100.0117,291,112.8164,279,125.6211,156,125.6211,144,112.8164,156,100.0117" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="117" x="156" y="110.2222">&#26032;&#30340;&#35831;&#27714;&#19982;connection</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="123" x="156" y="123.0269">&#26159;&#21542;&#26159;&#30456;&#21516;&#30340;host&#21644;port</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="22" x="122" y="110.2222">&#19981;&#21516;</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="22" x="291" y="110.2222">&#30456;&#21516;</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="214" x="11" y="135.6211"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="194" x="21" y="156.7598">&#21024;&#38500;&#35813;connection&#19982;call&#20043;&#38388;&#30340;&#20851;&#32852;</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="180" x="28" y="237.9922"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="160" x="38" y="259.1309">&#23558;connection&#26631;&#35760;&#34987;idle&#29366;&#24577;</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="85" x="75.5" y="306.9609"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="65" x="85.5" y="328.0996">&#20851;&#38381;socket</text><polygon fill="#F1F1F1" points="36,189.5898,200,189.5898,212,201.5898,200,213.5898,36,213.5898,24,201.5898,36,189.5898" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="22" x="122" y="223.8003">&#20026;&#31354;</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="164" x="36" y="205.3979">connection&#20851;&#32852;&#30340;calls&#21015;&#34920;&#20026;&#31354;</text><polygon fill="#F1F1F1" points="118,360.9297,130,372.9297,118,384.9297,106,372.9297,118,360.9297" style="stroke:#181818;stroke-width:0.5;"/><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="134" x="250" y="135.6211"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="114" x="260" y="156.7598">&#22797;&#29992;&#24403;&#21069;connection</text><ellipse cx="317" cy="200.5898" fill="none" rx="11" ry="11" style="stroke:#222222;stroke-width:1.0;"/><ellipse cx="317" cy="200.5898" fill="#222222" rx="6" ry="6" style="stroke:#222222;stroke-width:1.0;"/><polygon fill="#F1F1F1" points="129.5,50,305.5,50,317.5,62.8047,305.5,75.6094,129.5,75.6094,117.5,62.8047,129.5,50" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="33" x="221.5" y="85.8198">&#19981;&#20026;&#31354;</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="139" x="129.5" y="60.2104">&#24403;&#21069;connection&#26159;&#21542;&#20026;&#31354;&#65311;</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="176" x="129.5" y="73.0151">(RealCall&#25345;&#26377;&#30340;RealConnection)</text><polygon fill="#F1F1F1" points="217.5,404.9297,229.5,416.9297,217.5,428.9297,205.5,416.9297,217.5,404.9297" style="stroke:#181818;stroke-width:0.5;"/><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="80" x="177.5" y="448.9297"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="60" x="187.5" y="470.0684">&#26597;&#25214;&#36830;&#25509;&#27744;</text><polygon fill="#F1F1F1" points="162.5,502.8984,272.5,502.8984,284.5,514.8984,272.5,526.8984,162.5,526.8984,150.5,514.8984,162.5,502.8984" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="110" x="162.5" y="518.7065">&#36830;&#25509;&#27744;&#20013;&#23384;&#22312;&#21487;&#29992;&#36830;&#25509;</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="22" x="128.5" y="512.3042">&#23384;&#22312;</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="33" x="284.5" y="512.3042">&#19981;&#23384;&#22312;</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="142" x="49.75" y="536.8984"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="122" x="59.75" y="558.0371">&#20851;&#32852;call&#19982;connection</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="152" x="44.75" y="605.8672"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="132" x="54.75" y="627.0059">&#36820;&#22238;&#36830;&#25509;&#27744;&#20013;&#25214;&#30340;&#30340;&#36830;&#25509;</text><ellipse cx="120.75" cy="685.8359" fill="none" rx="11" ry="11" style="stroke:#222222;stroke-width:1.0;"/><ellipse cx="120.75" cy="685.8359" fill="#222222" rx="6" ry="6" style="stroke:#222222;stroke-width:1.0;"/><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="175" x="226.75" y="586.9102"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="155" x="236.75" y="608.0488">&#21019;&#24314;&#36335;&#30001;&#35299;&#26512;&#22120;&#24182;&#35299;&#26512;ip&#22320;&#22336;</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="161" x="233.75" y="655.8789"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="141" x="243.75" y="677.0176">&#22522;&#20110;IP&#22320;&#22336;&#20877;&#27425;&#26597;&#25214;&#36830;&#25509;&#27744;</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="92" x="268.25" y="765.2383"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="72" x="278.25" y="786.377">&#36820;&#22238;&#21487;&#29992;&#36830;&#25509;</text><ellipse cx="314.25" cy="838.7227" fill="none" rx="11" ry="11" style="stroke:#222222;stroke-width:1.0;"/><ellipse cx="314.25" cy="838.7227" fill="#222222" rx="6" ry="6" style="stroke:#222222;stroke-width:1.0;"/><polygon fill="#F1F1F1" points="281.25,716.8359,347.25,716.8359,359.25,728.8359,347.25,740.8359,281.25,740.8359,269.25,728.8359,281.25,716.8359" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="21" x="318.25" y="751.0464">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="66" x="281.25" y="732.644">&#23384;&#22312;&#21487;&#29992;&#36830;&#25509;</text><polygon fill="#F1F1F1" points="242.75,536.8984,385.75,536.8984,397.75,549.7031,385.75,562.5078,242.75,562.5078,230.75,549.7031,242.75,536.8984" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="33" x="318.25" y="572.7183">&#19981;&#20351;&#29992;</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="132" x="242.75" y="547.1089">&#20351;&#29992;&#21512;&#24182;&#36830;&#25509;&#30340;&#36335;&#30001;&#65292;&#25110;&#32773;</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="143" x="242.75" y="559.9136">&#20351;&#29992;&#24050;&#23384;&#22312;&#36335;&#30001;&#36873;&#25321;&#22120;&#30340;&#36335;&#30001;</text><polygon fill="#F1F1F1" points="314.25,891.7227,326.25,903.7227,314.25,915.7227,302.25,903.7227,314.25,891.7227" style="stroke:#181818;stroke-width:0.5;"/><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="135" x="150" y="935.7227"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="115" x="160" y="956.8613">&#21019;&#24314;&#26032;&#30340;Connection</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="80" x="177.5" y="989.6914"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="60" x="187.5" y="1010.8301">&#36830;&#25509;&#26381;&#21153;&#22120;</text><polygon fill="#F1F1F1" points="135.5,1043.6602,299.5,1043.6602,311.5,1056.4648,299.5,1069.2695,135.5,1069.2695,123.5,1056.4648,135.5,1043.6602" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="99" x="135.5" y="1053.8706">&#26597;&#25214;&#36830;&#25509;&#27744;&#26159;&#21542;&#23384;&#22312;</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="164" x="135.5" y="1066.6753">&#22810;&#36335;&#22797;&#29992;&#30340;connection(HTTP/2)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="22" x="101.5" y="1053.8706">&#23384;&#22312;</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="33" x="311.5" y="1053.8706">&#19981;&#23384;&#22312;</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="187" x="20" y="1079.2695"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="167" x="30" y="1100.4082">&#20851;&#38381;&#26032;&#24314;connection&#30340;socket</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="170" x="28.5" y="1133.2383"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="150" x="38.5" y="1154.377">&#36820;&#22238;&#22810;&#36335;&#22797;&#29992;&#30340;connection</text><ellipse cx="113.5" cy="1198.207" fill="none" rx="11" ry="11" style="stroke:#222222;stroke-width:1.0;"/><ellipse cx="113.5" cy="1198.207" fill="#222222" rx="6" ry="6" style="stroke:#222222;stroke-width:1.0;"/><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="128" x="257.5" y="1079.2695"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="108" x="267.5" y="1100.4082">&#26032;&#36830;&#25509;&#25918;&#21040;&#36830;&#25509;&#27744;&#20013;</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="142" x="250.5" y="1133.2383"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="122" x="260.5" y="1154.377">&#20851;&#32852;call&#19982;connection</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="92" x="275.5" y="1187.207"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="72" x="285.5" y="1208.3457">&#36820;&#22238;&#26032;&#24314;&#36830;&#25509;</text><ellipse cx="321.5" cy="1252.1758" fill="none" rx="11" ry="11" style="stroke:#222222;stroke-width:1.0;"/><ellipse cx="321.5" cy="1252.1758" fill="#222222" rx="6" ry="6" style="stroke:#222222;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="118" x2="118" y1="271.9609" y2="306.9609"/><polygon fill="#181818" points="114,296.9609,118,306.9609,122,296.9609,118,300.9609" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="118" x2="118" y1="213.5898" y2="237.9922"/><polygon fill="#181818" points="114,227.9922,118,237.9922,122,227.9922,118,231.9922" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="212" x2="224" y1="201.5898" y2="201.5898"/><polygon fill="#181818" points="220,279.4609,224,289.4609,228,279.4609,224,283.4609" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="224" x2="224" y1="201.5898" y2="372.9297"/><line style="stroke:#181818;stroke-width:1.0;" x1="224" x2="130" y1="372.9297" y2="372.9297"/><polygon fill="#181818" points="140,368.9297,130,372.9297,140,376.9297,136,372.9297" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="118" x2="118" y1="340.9297" y2="360.9297"/><polygon fill="#181818" points="114,350.9297,118,360.9297,122,350.9297,118,354.9297" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="118" x2="118" y1="169.5898" y2="189.5898"/><polygon fill="#181818" points="114,179.5898,118,189.5898,122,179.5898,118,183.5898" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="317" x2="317" y1="169.5898" y2="189.5898"/><polygon fill="#181818" points="313,179.5898,317,189.5898,321,179.5898,317,183.5898" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="144" x2="118" y1="112.8164" y2="112.8164"/><line style="stroke:#181818;stroke-width:1.0;" x1="118" x2="118" y1="112.8164" y2="135.6211"/><polygon fill="#181818" points="114,125.6211,118,135.6211,122,125.6211,118,129.6211" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="291" x2="317" y1="112.8164" y2="112.8164"/><line style="stroke:#181818;stroke-width:1.0;" x1="317" x2="317" y1="112.8164" y2="135.6211"/><polygon fill="#181818" points="313,125.6211,317,135.6211,321,125.6211,317,129.6211" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="118" x2="118" y1="384.9297" y2="389.9297"/><line style="stroke:#181818;stroke-width:1.0;" x1="118" x2="217.5" y1="389.9297" y2="389.9297"/><line style="stroke:#181818;stroke-width:1.0;" x1="217.5" x2="217.5" y1="389.9297" y2="404.9297"/><polygon fill="#181818" points="213.5,394.9297,217.5,404.9297,221.5,394.9297,217.5,398.9297" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="217.5" x2="217.5" y1="75.6094" y2="100.0117"/><polygon fill="#181818" points="213.5,90.0117,217.5,100.0117,221.5,90.0117,217.5,94.0117" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="317.5" x2="404" y1="62.8047" y2="62.8047"/><polygon fill="#181818" points="400,229.7695,404,239.7695,408,229.7695,404,233.7695" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="404" x2="404" y1="62.8047" y2="416.9297"/><line style="stroke:#181818;stroke-width:1.0;" x1="404" x2="229.5" y1="416.9297" y2="416.9297"/><polygon fill="#181818" points="239.5,412.9297,229.5,416.9297,239.5,420.9297,235.5,416.9297" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="217.5" x2="217.5" y1="30" y2="50"/><polygon fill="#181818" points="213.5,40,217.5,50,221.5,40,217.5,44" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="217.5" x2="217.5" y1="428.9297" y2="448.9297"/><polygon fill="#181818" points="213.5,438.9297,217.5,448.9297,221.5,438.9297,217.5,442.9297" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="120.75" x2="120.75" y1="570.8672" y2="605.8672"/><polygon fill="#181818" points="116.75,595.8672,120.75,605.8672,124.75,595.8672,120.75,599.8672" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="120.75" x2="120.75" y1="639.8359" y2="674.8359"/><polygon fill="#181818" points="116.75,664.8359,120.75,674.8359,124.75,664.8359,120.75,668.8359" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="314.25" x2="314.25" y1="620.8789" y2="655.8789"/><polygon fill="#181818" points="310.25,645.8789,314.25,655.8789,318.25,645.8789,314.25,649.8789" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="314.25" x2="314.25" y1="799.207" y2="827.7227"/><polygon fill="#181818" points="310.25,817.7227,314.25,827.7227,318.25,817.7227,314.25,821.7227" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="314.25" x2="314.25" y1="740.8359" y2="765.2383"/><polygon fill="#181818" points="310.25,755.2383,314.25,765.2383,318.25,755.2383,314.25,759.2383" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="359.25" x2="371.25" y1="728.8359" y2="728.8359"/><polygon fill="#181818" points="367.25,797.7227,371.25,807.7227,375.25,797.7227,371.25,801.7227" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="371.25" x2="371.25" y1="728.8359" y2="871.7227"/><line style="stroke:#181818;stroke-width:1.0;" x1="371.25" x2="314.25" y1="871.7227" y2="871.7227"/><line style="stroke:#181818;stroke-width:1.0;" x1="314.25" x2="314.25" y1="871.7227" y2="891.7227"/><polygon fill="#181818" points="310.25,881.7227,314.25,891.7227,318.25,881.7227,314.25,885.7227" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="314.25" x2="314.25" y1="689.8477" y2="716.8359"/><polygon fill="#181818" points="310.25,706.8359,314.25,716.8359,318.25,706.8359,314.25,710.8359" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="314.25" x2="314.25" y1="562.5078" y2="586.9102"/><polygon fill="#181818" points="310.25,576.9102,314.25,586.9102,318.25,576.9102,314.25,580.9102" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="397.75" x2="411.75" y1="549.7031" y2="549.7031"/><polygon fill="#181818" points="407.75,722.3516,411.75,732.3516,415.75,722.3516,411.75,726.3516" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="411.75" x2="411.75" y1="549.7031" y2="903.7227"/><line style="stroke:#181818;stroke-width:1.0;" x1="411.75" x2="326.25" y1="903.7227" y2="903.7227"/><polygon fill="#181818" points="336.25,899.7227,326.25,903.7227,336.25,907.7227,332.25,903.7227" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="150.5" x2="120.75" y1="514.8984" y2="514.8984"/><line style="stroke:#181818;stroke-width:1.0;" x1="120.75" x2="120.75" y1="514.8984" y2="536.8984"/><polygon fill="#181818" points="116.75,526.8984,120.75,536.8984,124.75,526.8984,120.75,530.8984" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="284.5" x2="314.25" y1="514.8984" y2="514.8984"/><line style="stroke:#181818;stroke-width:1.0;" x1="314.25" x2="314.25" y1="514.8984" y2="536.8984"/><polygon fill="#181818" points="310.25,526.8984,314.25,536.8984,318.25,526.8984,314.25,530.8984" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="314.25" x2="314.25" y1="915.7227" y2="920.7227"/><line style="stroke:#181818;stroke-width:1.0;" x1="314.25" x2="217.5" y1="920.7227" y2="920.7227"/><line style="stroke:#181818;stroke-width:1.0;" x1="217.5" x2="217.5" y1="920.7227" y2="935.7227"/><polygon fill="#181818" points="213.5,925.7227,217.5,935.7227,221.5,925.7227,217.5,929.7227" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="217.5" x2="217.5" y1="482.8984" y2="502.8984"/><polygon fill="#181818" points="213.5,492.8984,217.5,502.8984,221.5,492.8984,217.5,496.8984" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="217.5" x2="217.5" y1="969.6914" y2="989.6914"/><polygon fill="#181818" points="213.5,979.6914,217.5,989.6914,221.5,979.6914,217.5,983.6914" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="113.5" x2="113.5" y1="1113.2383" y2="1133.2383"/><polygon fill="#181818" points="109.5,1123.2383,113.5,1133.2383,117.5,1123.2383,113.5,1127.2383" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="113.5" x2="113.5" y1="1167.207" y2="1187.207"/><polygon fill="#181818" points="109.5,1177.207,113.5,1187.207,117.5,1177.207,113.5,1181.207" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="321.5" x2="321.5" y1="1113.2383" y2="1133.2383"/><polygon fill="#181818" points="317.5,1123.2383,321.5,1133.2383,325.5,1123.2383,321.5,1127.2383" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="321.5" x2="321.5" y1="1167.207" y2="1187.207"/><polygon fill="#181818" points="317.5,1177.207,321.5,1187.207,325.5,1177.207,321.5,1181.207" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="321.5" x2="321.5" y1="1221.1758" y2="1241.1758"/><polygon fill="#181818" points="317.5,1231.1758,321.5,1241.1758,325.5,1231.1758,321.5,1235.1758" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="123.5" x2="113.5" y1="1056.4648" y2="1056.4648"/><line style="stroke:#181818;stroke-width:1.0;" x1="113.5" x2="113.5" y1="1056.4648" y2="1079.2695"/><polygon fill="#181818" points="109.5,1069.2695,113.5,1079.2695,117.5,1069.2695,113.5,1073.2695" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="311.5" x2="321.5" y1="1056.4648" y2="1056.4648"/><line style="stroke:#181818;stroke-width:1.0;" x1="321.5" x2="321.5" y1="1056.4648" y2="1079.2695"/><polygon fill="#181818" points="317.5,1069.2695,321.5,1079.2695,325.5,1069.2695,321.5,1073.2695" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="217.5" x2="217.5" y1="1023.6602" y2="1043.6602"/><polygon fill="#181818" points="213.5,1033.6602,217.5,1043.6602,221.5,1033.6602,217.5,1037.6602" style="stroke:#181818;stroke-width:1.0;"/><!--SRC=[ZLCzRzfG5Dtv5HvXgjJHZ5dQBQeoiY3YAAYMZM8ltQ0AgKamHIqAIQ1yjD0IfHHega3S9FmPtuUPyXTwd-_pXwXIbS4oxvrpxhdtN1jczi1CvFUa9Dn_X8gTqpLDoPbvNMDd4wX_THVEwj9vlEjcjEGh9QjkPLMLLKkiNLbT7Fe78I6LainzHKkw2vjOgOGaSMLsEaMmDvcpsLjtKOjAP4GHVAvQ2wXN4RQl6oPyg1Rq0pFImoik9aaoMBtr-S2R32CLBecktDkJTVCNAa3vsYirqZwUbu-GT8CGZZV0QdhzaR0Qb0fyqq-6wL5i8hrtte-fz_aglwigg-CRLYobOz3ozRevDlJSQyMaOqNRpU_Xcw8QYfIa3eCs1lQgCTeSET4CKoya0ZOzPTOTiig3j-omsf3DUca_iV2lknZ3-0pQ8tW_GLaw5otH1IyhK_l-hE8fyAgojsn0gnDNn7euAHwSVyXHlZFgXeSIAdCpxlsITrItuFQ669mwHp-pnxigiqwzOZcZ2TJy9v7fVbsii9DBE1-5ZDWc-OGm_1RyTWZYVVl2EdKayNh-Uxu0xIbyAgO5kEkuJktbDXt2aSs-z_yQOx0ZJuxlZM84wo1c50S5yOl8Of77mai8t_GPRCNcBWidRHkE-zWAnRfXaZuHCfZHO721_TFwy4KErP8lTdQsdpqN7w6qaJjk9fP74n41sT6o1hqzfVwlz6LK5cuR3s1DuqkK_h-z8s-RYyQdzmS0]--></g></svg>

<h2 id="连接拦截器类图结构"><a href="#连接拦截器类图结构" class="headerlink" title="连接拦截器类图结构"></a>连接拦截器类图结构</h2><?xml version="1.0" encoding="us-ascii" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="623px" preserveAspectRatio="none" style="width:936px;height:623px;background:#FFFFFF;" version="1.1" viewBox="0 0 936 623" width="936px" zoomAndPan="magnify"><defs/><g><!--class ConnectInterceptor--><g id="elem_ConnectInterceptor"><rect fill="#F1F1F1" height="48" id="ConnectInterceptor" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="177" x="294" y="7"/><ellipse cx="309" cy="23" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M311.3438,18.6719 C310.4063,18.2344 309.8125,18.0938 308.9375,18.0938 C306.3125,18.0938 304.3125,20.1719 304.3125,22.8906 L304.3125,24.0156 C304.3125,26.5938 306.4219,28.4844 309.3125,28.4844 C310.5313,28.4844 311.6875,28.1875 312.4375,27.6406 C313.0156,27.2344 313.3438,26.7813 313.3438,26.3906 C313.3438,25.9375 312.9531,25.5469 312.4844,25.5469 C312.2656,25.5469 312.0625,25.625 311.875,25.8125 C311.4219,26.2969 311.4219,26.2969 311.2344,26.3906 C310.8125,26.6563 310.125,26.7813 309.3594,26.7813 C307.3125,26.7813 306.0156,25.6875 306.0156,23.9844 L306.0156,22.8906 C306.0156,21.1094 307.2656,19.7969 309,19.7969 C309.5781,19.7969 310.1875,19.9531 310.6563,20.2031 C311.1406,20.4844 311.3125,20.7031 311.4063,21.1094 C311.4688,21.5156 311.5,21.6406 311.6406,21.7656 C311.7813,21.9063 312.0156,22.0156 312.2344,22.0156 C312.5,22.0156 312.7656,21.875 312.9375,21.6563 C313.0469,21.5 313.0781,21.3125 313.0781,20.8906 L313.0781,19.4688 C313.0781,19.0313 313.0625,18.9063 312.9688,18.75 C312.8125,18.4844 312.5313,18.3438 312.2344,18.3438 C311.9375,18.3438 311.7344,18.4375 311.5156,18.75 L311.3438,18.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="145" x="323" y="27.8467">ConnectInterceptor</text><line style="stroke:#181818;stroke-width:0.5;" x1="295" x2="470" y1="39" y2="39"/><line style="stroke:#181818;stroke-width:0.5;" x1="295" x2="470" y1="47" y2="47"/></g><!--class RealInterceptorChain--><g id="elem_RealInterceptorChain"><rect fill="#F1F1F1" height="48" id="RealInterceptorChain" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="187" x="234" y="116"/><ellipse cx="249" cy="132" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M251.3438,127.6719 C250.4063,127.2344 249.8125,127.0938 248.9375,127.0938 C246.3125,127.0938 244.3125,129.1719 244.3125,131.8906 L244.3125,133.0156 C244.3125,135.5938 246.4219,137.4844 249.3125,137.4844 C250.5313,137.4844 251.6875,137.1875 252.4375,136.6406 C253.0156,136.2344 253.3438,135.7813 253.3438,135.3906 C253.3438,134.9375 252.9531,134.5469 252.4844,134.5469 C252.2656,134.5469 252.0625,134.625 251.875,134.8125 C251.4219,135.2969 251.4219,135.2969 251.2344,135.3906 C250.8125,135.6563 250.125,135.7813 249.3594,135.7813 C247.3125,135.7813 246.0156,134.6875 246.0156,132.9844 L246.0156,131.8906 C246.0156,130.1094 247.2656,128.7969 249,128.7969 C249.5781,128.7969 250.1875,128.9531 250.6563,129.2031 C251.1406,129.4844 251.3125,129.7031 251.4063,130.1094 C251.4688,130.5156 251.5,130.6406 251.6406,130.7656 C251.7813,130.9063 252.0156,131.0156 252.2344,131.0156 C252.5,131.0156 252.7656,130.875 252.9375,130.6563 C253.0469,130.5 253.0781,130.3125 253.0781,129.8906 L253.0781,128.4688 C253.0781,128.0313 253.0625,127.9063 252.9688,127.75 C252.8125,127.4844 252.5313,127.3438 252.2344,127.3438 C251.9375,127.3438 251.7344,127.4375 251.5156,127.75 L251.3438,127.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="155" x="263" y="136.8467">RealInterceptorChain</text><line style="stroke:#181818;stroke-width:0.5;" x1="235" x2="420" y1="148" y2="148"/><line style="stroke:#181818;stroke-width:0.5;" x1="235" x2="420" y1="156" y2="156"/></g><!--class Exchange--><g id="elem_Exchange"><rect fill="#F1F1F1" height="48" id="Exchange" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="101" x="456" y="116"/><ellipse cx="471" cy="132" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M473.3438,127.6719 C472.4063,127.2344 471.8125,127.0938 470.9375,127.0938 C468.3125,127.0938 466.3125,129.1719 466.3125,131.8906 L466.3125,133.0156 C466.3125,135.5938 468.4219,137.4844 471.3125,137.4844 C472.5313,137.4844 473.6875,137.1875 474.4375,136.6406 C475.0156,136.2344 475.3438,135.7813 475.3438,135.3906 C475.3438,134.9375 474.9531,134.5469 474.4844,134.5469 C474.2656,134.5469 474.0625,134.625 473.875,134.8125 C473.4219,135.2969 473.4219,135.2969 473.2344,135.3906 C472.8125,135.6563 472.125,135.7813 471.3594,135.7813 C469.3125,135.7813 468.0156,134.6875 468.0156,132.9844 L468.0156,131.8906 C468.0156,130.1094 469.2656,128.7969 471,128.7969 C471.5781,128.7969 472.1875,128.9531 472.6563,129.2031 C473.1406,129.4844 473.3125,129.7031 473.4063,130.1094 C473.4688,130.5156 473.5,130.6406 473.6406,130.7656 C473.7813,130.9063 474.0156,131.0156 474.2344,131.0156 C474.5,131.0156 474.7656,130.875 474.9375,130.6563 C475.0469,130.5 475.0781,130.3125 475.0781,129.8906 L475.0781,128.4688 C475.0781,128.0313 475.0625,127.9063 474.9688,127.75 C474.8125,127.4844 474.5313,127.3438 474.2344,127.3438 C473.9375,127.3438 473.7344,127.4375 473.5156,127.75 L473.3438,127.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="69" x="485" y="136.8467">Exchange</text><line style="stroke:#181818;stroke-width:0.5;" x1="457" x2="556" y1="148" y2="148"/><line style="stroke:#181818;stroke-width:0.5;" x1="457" x2="556" y1="156" y2="156"/></g><!--class ExchangeFinder--><g id="elem_ExchangeFinder"><rect fill="#F1F1F1" height="48" id="ExchangeFinder" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="146" x="104.5" y="225"/><ellipse cx="119.5" cy="241" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M121.8438,236.6719 C120.9063,236.2344 120.3125,236.0938 119.4375,236.0938 C116.8125,236.0938 114.8125,238.1719 114.8125,240.8906 L114.8125,242.0156 C114.8125,244.5938 116.9219,246.4844 119.8125,246.4844 C121.0313,246.4844 122.1875,246.1875 122.9375,245.6406 C123.5156,245.2344 123.8438,244.7813 123.8438,244.3906 C123.8438,243.9375 123.4531,243.5469 122.9844,243.5469 C122.7656,243.5469 122.5625,243.625 122.375,243.8125 C121.9219,244.2969 121.9219,244.2969 121.7344,244.3906 C121.3125,244.6563 120.625,244.7813 119.8594,244.7813 C117.8125,244.7813 116.5156,243.6875 116.5156,241.9844 L116.5156,240.8906 C116.5156,239.1094 117.7656,237.7969 119.5,237.7969 C120.0781,237.7969 120.6875,237.9531 121.1563,238.2031 C121.6406,238.4844 121.8125,238.7031 121.9063,239.1094 C121.9688,239.5156 122,239.6406 122.1406,239.7656 C122.2813,239.9063 122.5156,240.0156 122.7344,240.0156 C123,240.0156 123.2656,239.875 123.4375,239.6563 C123.5469,239.5 123.5781,239.3125 123.5781,238.8906 L123.5781,237.4688 C123.5781,237.0313 123.5625,236.9063 123.4688,236.75 C123.3125,236.4844 123.0313,236.3438 122.7344,236.3438 C122.4375,236.3438 122.2344,236.4375 122.0156,236.75 L121.8438,236.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="114" x="133.5" y="245.8467">ExchangeFinder</text><line style="stroke:#181818;stroke-width:0.5;" x1="105.5" x2="249.5" y1="257" y2="257"/><line style="stroke:#181818;stroke-width:0.5;" x1="105.5" x2="249.5" y1="265" y2="265"/></g><!--class ExchangeCodec--><g id="elem_ExchangeCodec"><rect codeLine="10" fill="#F1F1F1" height="48" id="ExchangeCodec" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="147" x="433" y="225"/><ellipse cx="448" cy="241" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M448.9531,237.7813 L450.6719,237.7813 C451.0625,237.7813 451.25,237.75 451.375,237.6719 C451.6406,237.5156 451.7813,237.2344 451.7813,236.9375 C451.7813,236.6719 451.6719,236.4063 451.4375,236.2344 C451.2656,236.125 451.125,236.0938 450.6719,236.0938 L445.5313,236.0938 C445.0938,236.0938 444.9688,236.1094 444.8125,236.2031 C444.5625,236.3594 444.4063,236.6563 444.4063,236.9375 C444.4063,237.2188 444.5469,237.4688 444.7656,237.6406 C444.9219,237.75 445.1094,237.7813 445.5313,237.7813 L447.25,237.7813 L447.25,244.2969 L445.5313,244.2969 C445.0938,244.2969 444.9688,244.3125 444.8125,244.4219 C444.5625,244.5781 444.4063,244.8594 444.4063,245.1563 C444.4063,245.4063 444.5469,245.6719 444.7656,245.8281 C444.9219,245.9531 445.125,246 445.5313,246 L450.6719,246 C451.4219,246 451.7813,245.7188 451.7813,245.1563 C451.7813,244.875 451.6719,244.625 451.4375,244.4531 C451.2656,244.3281 451.125,244.2969 450.6719,244.2969 L448.9531,244.2969 L448.9531,237.7813 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="115" x="462" y="245.8467">ExchangeCodec</text><line style="stroke:#181818;stroke-width:0.5;" x1="434" x2="579" y1="257" y2="257"/><line style="stroke:#181818;stroke-width:0.5;" x1="434" x2="579" y1="265" y2="265"/></g><!--class RealCall--><g id="elem_RealCall"><rect fill="#F1F1F1" height="48" id="RealCall" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="89" x="458" y="459"/><ellipse cx="473" cy="475" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M475.3438,470.6719 C474.4063,470.2344 473.8125,470.0938 472.9375,470.0938 C470.3125,470.0938 468.3125,472.1719 468.3125,474.8906 L468.3125,476.0156 C468.3125,478.5938 470.4219,480.4844 473.3125,480.4844 C474.5313,480.4844 475.6875,480.1875 476.4375,479.6406 C477.0156,479.2344 477.3438,478.7813 477.3438,478.3906 C477.3438,477.9375 476.9531,477.5469 476.4844,477.5469 C476.2656,477.5469 476.0625,477.625 475.875,477.8125 C475.4219,478.2969 475.4219,478.2969 475.2344,478.3906 C474.8125,478.6563 474.125,478.7813 473.3594,478.7813 C471.3125,478.7813 470.0156,477.6875 470.0156,475.9844 L470.0156,474.8906 C470.0156,473.1094 471.2656,471.7969 473,471.7969 C473.5781,471.7969 474.1875,471.9531 474.6563,472.2031 C475.1406,472.4844 475.3125,472.7031 475.4063,473.1094 C475.4688,473.5156 475.5,473.6406 475.6406,473.7656 C475.7813,473.9063 476.0156,474.0156 476.2344,474.0156 C476.5,474.0156 476.7656,473.875 476.9375,473.6563 C477.0469,473.5 477.0781,473.3125 477.0781,472.8906 L477.0781,471.4688 C477.0781,471.0313 477.0625,470.9063 476.9688,470.75 C476.8125,470.4844 476.5313,470.3438 476.2344,470.3438 C475.9375,470.3438 475.7344,470.4375 475.5156,470.75 L475.3438,470.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="57" x="487" y="479.8467">RealCall</text><line style="stroke:#181818;stroke-width:0.5;" x1="459" x2="546" y1="491" y2="491"/><line style="stroke:#181818;stroke-width:0.5;" x1="459" x2="546" y1="499" y2="499"/></g><!--class OkHttpClient--><g id="elem_OkHttpClient"><rect fill="#F1F1F1" height="48" id="OkHttpClient" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="129" x="438" y="568"/><ellipse cx="453" cy="584" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M455.3438,579.6719 C454.4063,579.2344 453.8125,579.0938 452.9375,579.0938 C450.3125,579.0938 448.3125,581.1719 448.3125,583.8906 L448.3125,585.0156 C448.3125,587.5938 450.4219,589.4844 453.3125,589.4844 C454.5313,589.4844 455.6875,589.1875 456.4375,588.6406 C457.0156,588.2344 457.3438,587.7813 457.3438,587.3906 C457.3438,586.9375 456.9531,586.5469 456.4844,586.5469 C456.2656,586.5469 456.0625,586.625 455.875,586.8125 C455.4219,587.2969 455.4219,587.2969 455.2344,587.3906 C454.8125,587.6563 454.125,587.7813 453.3594,587.7813 C451.3125,587.7813 450.0156,586.6875 450.0156,584.9844 L450.0156,583.8906 C450.0156,582.1094 451.2656,580.7969 453,580.7969 C453.5781,580.7969 454.1875,580.9531 454.6563,581.2031 C455.1406,581.4844 455.3125,581.7031 455.4063,582.1094 C455.4688,582.5156 455.5,582.6406 455.6406,582.7656 C455.7813,582.9063 456.0156,583.0156 456.2344,583.0156 C456.5,583.0156 456.7656,582.875 456.9375,582.6563 C457.0469,582.5 457.0781,582.3125 457.0781,581.8906 L457.0781,580.4688 C457.0781,580.0313 457.0625,579.9063 456.9688,579.75 C456.8125,579.4844 456.5313,579.3438 456.2344,579.3438 C455.9375,579.3438 455.7344,579.4375 455.5156,579.75 L455.3438,579.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="97" x="467" y="588.8467">OkHttpClient</text><line style="stroke:#181818;stroke-width:0.5;" x1="439" x2="566" y1="600" y2="600"/><line style="stroke:#181818;stroke-width:0.5;" x1="439" x2="566" y1="608" y2="608"/></g><!--class RealConnection--><g id="elem_RealConnection"><rect fill="#F1F1F1" height="48" id="RealConnection" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="146" x="230.5" y="334"/><ellipse cx="245.5" cy="350" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M247.8438,345.6719 C246.9063,345.2344 246.3125,345.0938 245.4375,345.0938 C242.8125,345.0938 240.8125,347.1719 240.8125,349.8906 L240.8125,351.0156 C240.8125,353.5938 242.9219,355.4844 245.8125,355.4844 C247.0313,355.4844 248.1875,355.1875 248.9375,354.6406 C249.5156,354.2344 249.8438,353.7813 249.8438,353.3906 C249.8438,352.9375 249.4531,352.5469 248.9844,352.5469 C248.7656,352.5469 248.5625,352.625 248.375,352.8125 C247.9219,353.2969 247.9219,353.2969 247.7344,353.3906 C247.3125,353.6563 246.625,353.7813 245.8594,353.7813 C243.8125,353.7813 242.5156,352.6875 242.5156,350.9844 L242.5156,349.8906 C242.5156,348.1094 243.7656,346.7969 245.5,346.7969 C246.0781,346.7969 246.6875,346.9531 247.1563,347.2031 C247.6406,347.4844 247.8125,347.7031 247.9063,348.1094 C247.9688,348.5156 248,348.6406 248.1406,348.7656 C248.2813,348.9063 248.5156,349.0156 248.7344,349.0156 C249,349.0156 249.2656,348.875 249.4375,348.6563 C249.5469,348.5 249.5781,348.3125 249.5781,347.8906 L249.5781,346.4688 C249.5781,346.0313 249.5625,345.9063 249.4688,345.75 C249.3125,345.4844 249.0313,345.3438 248.7344,345.3438 C248.4375,345.3438 248.2344,345.4375 248.0156,345.75 L247.8438,345.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="114" x="259.5" y="354.8467">RealConnection</text><line style="stroke:#181818;stroke-width:0.5;" x1="231.5" x2="375.5" y1="366" y2="366"/><line style="stroke:#181818;stroke-width:0.5;" x1="231.5" x2="375.5" y1="374" y2="374"/></g><!--class Http1ExchangeCodec--><g id="elem_Http1ExchangeCodec"><rect fill="#F1F1F1" height="48" id="Http1ExchangeCodec" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="189" x="412" y="334"/><ellipse cx="427" cy="350" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M429.3438,345.6719 C428.4063,345.2344 427.8125,345.0938 426.9375,345.0938 C424.3125,345.0938 422.3125,347.1719 422.3125,349.8906 L422.3125,351.0156 C422.3125,353.5938 424.4219,355.4844 427.3125,355.4844 C428.5313,355.4844 429.6875,355.1875 430.4375,354.6406 C431.0156,354.2344 431.3438,353.7813 431.3438,353.3906 C431.3438,352.9375 430.9531,352.5469 430.4844,352.5469 C430.2656,352.5469 430.0625,352.625 429.875,352.8125 C429.4219,353.2969 429.4219,353.2969 429.2344,353.3906 C428.8125,353.6563 428.125,353.7813 427.3594,353.7813 C425.3125,353.7813 424.0156,352.6875 424.0156,350.9844 L424.0156,349.8906 C424.0156,348.1094 425.2656,346.7969 427,346.7969 C427.5781,346.7969 428.1875,346.9531 428.6563,347.2031 C429.1406,347.4844 429.3125,347.7031 429.4063,348.1094 C429.4688,348.5156 429.5,348.6406 429.6406,348.7656 C429.7813,348.9063 430.0156,349.0156 430.2344,349.0156 C430.5,349.0156 430.7656,348.875 430.9375,348.6563 C431.0469,348.5 431.0781,348.3125 431.0781,347.8906 L431.0781,346.4688 C431.0781,346.0313 431.0625,345.9063 430.9688,345.75 C430.8125,345.4844 430.5313,345.3438 430.2344,345.3438 C429.9375,345.3438 429.7344,345.4375 429.5156,345.75 L429.3438,345.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="157" x="441" y="354.8467">Http1ExchangeCodec</text><line style="stroke:#181818;stroke-width:0.5;" x1="413" x2="600" y1="366" y2="366"/><line style="stroke:#181818;stroke-width:0.5;" x1="413" x2="600" y1="374" y2="374"/></g><!--class Http2ExchangeCodec--><g id="elem_Http2ExchangeCodec"><rect fill="#F1F1F1" height="48" id="Http2ExchangeCodec" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="188" x="636.5" y="334"/><ellipse cx="651.5" cy="350" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M653.8438,345.6719 C652.9063,345.2344 652.3125,345.0938 651.4375,345.0938 C648.8125,345.0938 646.8125,347.1719 646.8125,349.8906 L646.8125,351.0156 C646.8125,353.5938 648.9219,355.4844 651.8125,355.4844 C653.0313,355.4844 654.1875,355.1875 654.9375,354.6406 C655.5156,354.2344 655.8438,353.7813 655.8438,353.3906 C655.8438,352.9375 655.4531,352.5469 654.9844,352.5469 C654.7656,352.5469 654.5625,352.625 654.375,352.8125 C653.9219,353.2969 653.9219,353.2969 653.7344,353.3906 C653.3125,353.6563 652.625,353.7813 651.8594,353.7813 C649.8125,353.7813 648.5156,352.6875 648.5156,350.9844 L648.5156,349.8906 C648.5156,348.1094 649.7656,346.7969 651.5,346.7969 C652.0781,346.7969 652.6875,346.9531 653.1563,347.2031 C653.6406,347.4844 653.8125,347.7031 653.9063,348.1094 C653.9688,348.5156 654,348.6406 654.1406,348.7656 C654.2813,348.9063 654.5156,349.0156 654.7344,349.0156 C655,349.0156 655.2656,348.875 655.4375,348.6563 C655.5469,348.5 655.5781,348.3125 655.5781,347.8906 L655.5781,346.4688 C655.5781,346.0313 655.5625,345.9063 655.4688,345.75 C655.3125,345.4844 655.0313,345.3438 654.7344,345.3438 C654.4375,345.3438 654.2344,345.4375 654.0156,345.75 L653.8438,345.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="156" x="665.5" y="354.8467">Http2ExchangeCodec</text><line style="stroke:#181818;stroke-width:0.5;" x1="637.5" x2="823.5" y1="366" y2="366"/><line style="stroke:#181818;stroke-width:0.5;" x1="637.5" x2="823.5" y1="374" y2="374"/></g><!--class Socket--><g id="elem_Socket"><rect fill="#F1F1F1" height="48" id="Socket" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="83" x="340" y="459"/><ellipse cx="355" cy="475" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M357.3438,470.6719 C356.4063,470.2344 355.8125,470.0938 354.9375,470.0938 C352.3125,470.0938 350.3125,472.1719 350.3125,474.8906 L350.3125,476.0156 C350.3125,478.5938 352.4219,480.4844 355.3125,480.4844 C356.5313,480.4844 357.6875,480.1875 358.4375,479.6406 C359.0156,479.2344 359.3438,478.7813 359.3438,478.3906 C359.3438,477.9375 358.9531,477.5469 358.4844,477.5469 C358.2656,477.5469 358.0625,477.625 357.875,477.8125 C357.4219,478.2969 357.4219,478.2969 357.2344,478.3906 C356.8125,478.6563 356.125,478.7813 355.3594,478.7813 C353.3125,478.7813 352.0156,477.6875 352.0156,475.9844 L352.0156,474.8906 C352.0156,473.1094 353.2656,471.7969 355,471.7969 C355.5781,471.7969 356.1875,471.9531 356.6563,472.2031 C357.1406,472.4844 357.3125,472.7031 357.4063,473.1094 C357.4688,473.5156 357.5,473.6406 357.6406,473.7656 C357.7813,473.9063 358.0156,474.0156 358.2344,474.0156 C358.5,474.0156 358.7656,473.875 358.9375,473.6563 C359.0469,473.5 359.0781,473.3125 359.0781,472.8906 L359.0781,471.4688 C359.0781,471.0313 359.0625,470.9063 358.9688,470.75 C358.8125,470.4844 358.5313,470.3438 358.2344,470.3438 C357.9375,470.3438 357.7344,470.4375 357.5156,470.75 L357.3438,470.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="51" x="369" y="479.8467">Socket</text><line style="stroke:#181818;stroke-width:0.5;" x1="341" x2="422" y1="491" y2="491"/><line style="stroke:#181818;stroke-width:0.5;" x1="341" x2="422" y1="499" y2="499"/></g><!--class RealConnectionPool--><g id="elem_RealConnectionPool"><rect fill="#F1F1F1" height="48" id="RealConnectionPool" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="177" x="128" y="459"/><ellipse cx="143" cy="475" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M145.3438,470.6719 C144.4063,470.2344 143.8125,470.0938 142.9375,470.0938 C140.3125,470.0938 138.3125,472.1719 138.3125,474.8906 L138.3125,476.0156 C138.3125,478.5938 140.4219,480.4844 143.3125,480.4844 C144.5313,480.4844 145.6875,480.1875 146.4375,479.6406 C147.0156,479.2344 147.3438,478.7813 147.3438,478.3906 C147.3438,477.9375 146.9531,477.5469 146.4844,477.5469 C146.2656,477.5469 146.0625,477.625 145.875,477.8125 C145.4219,478.2969 145.4219,478.2969 145.2344,478.3906 C144.8125,478.6563 144.125,478.7813 143.3594,478.7813 C141.3125,478.7813 140.0156,477.6875 140.0156,475.9844 L140.0156,474.8906 C140.0156,473.1094 141.2656,471.7969 143,471.7969 C143.5781,471.7969 144.1875,471.9531 144.6563,472.2031 C145.1406,472.4844 145.3125,472.7031 145.4063,473.1094 C145.4688,473.5156 145.5,473.6406 145.6406,473.7656 C145.7813,473.9063 146.0156,474.0156 146.2344,474.0156 C146.5,474.0156 146.7656,473.875 146.9375,473.6563 C147.0469,473.5 147.0781,473.3125 147.0781,472.8906 L147.0781,471.4688 C147.0781,471.0313 147.0625,470.9063 146.9688,470.75 C146.8125,470.4844 146.5313,470.3438 146.2344,470.3438 C145.9375,470.3438 145.7344,470.4375 145.5156,470.75 L145.3438,470.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="145" x="157" y="479.8467">RealConnectionPool</text><line style="stroke:#181818;stroke-width:0.5;" x1="129" x2="304" y1="491" y2="491"/><line style="stroke:#181818;stroke-width:0.5;" x1="129" x2="304" y1="499" y2="499"/></g><!--class Address--><g id="elem_Address"><rect fill="#F1F1F1" height="48" id="Address" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="89" x="32" y="334"/><ellipse cx="47" cy="350" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M49.3438,345.6719 C48.4063,345.2344 47.8125,345.0938 46.9375,345.0938 C44.3125,345.0938 42.3125,347.1719 42.3125,349.8906 L42.3125,351.0156 C42.3125,353.5938 44.4219,355.4844 47.3125,355.4844 C48.5313,355.4844 49.6875,355.1875 50.4375,354.6406 C51.0156,354.2344 51.3438,353.7813 51.3438,353.3906 C51.3438,352.9375 50.9531,352.5469 50.4844,352.5469 C50.2656,352.5469 50.0625,352.625 49.875,352.8125 C49.4219,353.2969 49.4219,353.2969 49.2344,353.3906 C48.8125,353.6563 48.125,353.7813 47.3594,353.7813 C45.3125,353.7813 44.0156,352.6875 44.0156,350.9844 L44.0156,349.8906 C44.0156,348.1094 45.2656,346.7969 47,346.7969 C47.5781,346.7969 48.1875,346.9531 48.6563,347.2031 C49.1406,347.4844 49.3125,347.7031 49.4063,348.1094 C49.4688,348.5156 49.5,348.6406 49.6406,348.7656 C49.7813,348.9063 50.0156,349.0156 50.2344,349.0156 C50.5,349.0156 50.7656,348.875 50.9375,348.6563 C51.0469,348.5 51.0781,348.3125 51.0781,347.8906 L51.0781,346.4688 C51.0781,346.0313 51.0625,345.9063 50.9688,345.75 C50.8125,345.4844 50.5313,345.3438 50.2344,345.3438 C49.9375,345.3438 49.7344,345.4375 49.5156,345.75 L49.3438,345.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="57" x="61" y="354.8467">Address</text><line style="stroke:#181818;stroke-width:0.5;" x1="33" x2="120" y1="366" y2="366"/><line style="stroke:#181818;stroke-width:0.5;" x1="33" x2="120" y1="374" y2="374"/></g><!--class Dns--><g id="elem_Dns"><rect fill="#F1F1F1" height="48" id="Dns" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="59" x="34" y="459"/><ellipse cx="49" cy="475" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M51.3438,470.6719 C50.4063,470.2344 49.8125,470.0938 48.9375,470.0938 C46.3125,470.0938 44.3125,472.1719 44.3125,474.8906 L44.3125,476.0156 C44.3125,478.5938 46.4219,480.4844 49.3125,480.4844 C50.5313,480.4844 51.6875,480.1875 52.4375,479.6406 C53.0156,479.2344 53.3438,478.7813 53.3438,478.3906 C53.3438,477.9375 52.9531,477.5469 52.4844,477.5469 C52.2656,477.5469 52.0625,477.625 51.875,477.8125 C51.4219,478.2969 51.4219,478.2969 51.2344,478.3906 C50.8125,478.6563 50.125,478.7813 49.3594,478.7813 C47.3125,478.7813 46.0156,477.6875 46.0156,475.9844 L46.0156,474.8906 C46.0156,473.1094 47.2656,471.7969 49,471.7969 C49.5781,471.7969 50.1875,471.9531 50.6563,472.2031 C51.1406,472.4844 51.3125,472.7031 51.4063,473.1094 C51.4688,473.5156 51.5,473.6406 51.6406,473.7656 C51.7813,473.9063 52.0156,474.0156 52.2344,474.0156 C52.5,474.0156 52.7656,473.875 52.9375,473.6563 C53.0469,473.5 53.0781,473.3125 53.0781,472.8906 L53.0781,471.4688 C53.0781,471.0313 53.0625,470.9063 52.9688,470.75 C52.8125,470.4844 52.5313,470.3438 52.2344,470.3438 C51.9375,470.3438 51.7344,470.4375 51.5156,470.75 L51.3438,470.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="27" x="63" y="479.8467">Dns</text><line style="stroke:#181818;stroke-width:0.5;" x1="35" x2="92" y1="491" y2="491"/><line style="stroke:#181818;stroke-width:0.5;" x1="35" x2="92" y1="499" y2="499"/></g><!--class DnsSystem--><g id="elem_DnsSystem"><rect fill="#F1F1F1" height="48" id="DnsSystem" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="113" x="7" y="568"/><ellipse cx="22" cy="584" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M24.3438,579.6719 C23.4063,579.2344 22.8125,579.0938 21.9375,579.0938 C19.3125,579.0938 17.3125,581.1719 17.3125,583.8906 L17.3125,585.0156 C17.3125,587.5938 19.4219,589.4844 22.3125,589.4844 C23.5313,589.4844 24.6875,589.1875 25.4375,588.6406 C26.0156,588.2344 26.3438,587.7813 26.3438,587.3906 C26.3438,586.9375 25.9531,586.5469 25.4844,586.5469 C25.2656,586.5469 25.0625,586.625 24.875,586.8125 C24.4219,587.2969 24.4219,587.2969 24.2344,587.3906 C23.8125,587.6563 23.125,587.7813 22.3594,587.7813 C20.3125,587.7813 19.0156,586.6875 19.0156,584.9844 L19.0156,583.8906 C19.0156,582.1094 20.2656,580.7969 22,580.7969 C22.5781,580.7969 23.1875,580.9531 23.6563,581.2031 C24.1406,581.4844 24.3125,581.7031 24.4063,582.1094 C24.4688,582.5156 24.5,582.6406 24.6406,582.7656 C24.7813,582.9063 25.0156,583.0156 25.2344,583.0156 C25.5,583.0156 25.7656,582.875 25.9375,582.6563 C26.0469,582.5 26.0781,582.3125 26.0781,581.8906 L26.0781,580.4688 C26.0781,580.0313 26.0625,579.9063 25.9688,579.75 C25.8125,579.4844 25.5313,579.3438 25.2344,579.3438 C24.9375,579.3438 24.7344,579.4375 24.5156,579.75 L24.3438,579.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="81" x="36" y="588.8467">DnsSystem</text><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="119" y1="600" y2="600"/><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="119" y1="608" y2="608"/></g><!--link ConnectInterceptor to RealInterceptorChain--><g id="link_ConnectInterceptor_RealInterceptorChain"><path codeLine="1" d="M370.566,55.217 C361.34,73.165 351.3729,92.5556 342.1539,110.4916 " fill="none" id="ConnectInterceptor-to-RealInterceptorChain" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="339.411,115.828,347.0829,109.652,341.6967,111.381,339.9677,105.9949,339.411,115.828" style="stroke:#181818;stroke-width:1.0;"/></g><!--link ConnectInterceptor to Exchange--><g id="link_ConnectInterceptor_Exchange"><path codeLine="2" d="M409.406,55.217 C430.205,73.165 454.3185,93.9721 475.1035,111.9081 " fill="none" id="ConnectInterceptor-to-Exchange" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="479.646,115.828,475.4455,106.9198,475.8606,112.5614,470.219,112.9765,479.646,115.828" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Exchange to ExchangeFinder--><g id="link_Exchange_ExchangeFinder"><path codeLine="3" d="M444.2795,162.1028 C438.4965,164.0418 444.062,162.164 438.5,164 C374.989,184.96 302.575,208.215 250.161,224.932 " fill="none" id="Exchange-backto-ExchangeFinder" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="455.657,158.288,448.6967,156.4029,444.2795,162.1028,451.2399,163.9879,455.657,158.288" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Exchange to ExchangeCodec--><g id="link_Exchange_ExchangeCodec"><path codeLine="4" d="M506.5,176.217 C506.5,194.165 506.5,206.892 506.5,224.828 " fill="none" id="Exchange-backto-ExchangeCodec" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="506.5,164.217,502.5,170.217,506.5,176.217,510.5,170.217,506.5,164.217" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Exchange to RealCall--><g id="link_Exchange_RealCall"><path codeLine="5" d="M568.665,156.3155 C682.196,186.2295 929.267,266.038 842.5,382 C806.837,429.663 630.836,462.405 547.024,475.552 " fill="none" id="Exchange-backto-RealCall" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="557.061,153.258,561.8438,158.6547,568.665,156.3155,563.8821,150.9188,557.061,153.258" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link RealCall to OkHttpClient--><g id="link_RealCall_OkHttpClient"><path codeLine="7" d="M502.5,519.217 C502.5,537.1649 502.5,549.8918 502.5,567.8279 " fill="none" id="RealCall-backto-OkHttpClient" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="502.5,507.217,498.5,513.217,502.5,519.217,506.5,513.217,502.5,507.217" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link RealConnection to RealCall--><g id="link_RealConnection_RealCall"><path codeLine="8" d="M359.4021,387.0085 C377.7161,395.3165 387.589,400.547 405.5,412 C426.49,425.422 447.589,444.154 465.339,458.864 " fill="none" id="RealConnection-backto-RealCall" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="348.474,382.051,352.2856,388.1724,359.4021,387.0085,355.5905,380.887,348.474,382.051" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8" x="350.9736" y="402.2199">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="24" x="428.7415" y="447.8412">0..n</text></g><!--reverse link RealCall to RealConnection--><g id="link_RealCall_RealConnection"><path codeLine="9" d="M487.3935,449.7555 C474.7765,435.0455 461.49,425.422 440.5,412 C421.065,399.573 398.226,388.634 376.642,379.972 " fill="none" id="RealCall-backto-RealConnection" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="495.206,458.864,494.3359,451.7056,487.3935,449.7555,488.2636,456.9139,495.206,458.864" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link ExchangeCodec to RealConnection--><g id="link_ExchangeCodec_RealConnection"><path codeLine="11" d="M451.8364,278.8125 C417.7864,296.7605 381.49,315.892 347.462,333.828 " fill="none" id="ExchangeCodec-backto-RealConnection" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="462.452,273.217,455.279,272.4762,451.8364,278.8125,459.0094,279.5533,462.452,273.217" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link ExchangeCodec to Http1ExchangeCodec--><g id="link_ExchangeCodec_Http1ExchangeCodec"><path codeLine="12" d="M506.5,291.217 C506.5,309.165 506.5,315.892 506.5,333.828 " fill="none" id="ExchangeCodec-backto-Http1ExchangeCodec" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="506.5,273.217,500.5,291.217,512.5,291.217,506.5,273.217" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link ExchangeCodec to Http2ExchangeCodec--><g id="link_ExchangeCodec_Http2ExchangeCodec"><path codeLine="13" d="M571.0712,280.8444 C608.7542,298.8444 644.596,315.966 682.258,333.956 " fill="none" id="ExchangeCodec-backto-Http2ExchangeCodec" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="554.829,273.086,568.485,286.2584,573.6573,275.4303,554.829,273.086" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link RealConnection to Socket--><g id="link_RealConnection_Socket"><path codeLine="14" d="M287.3589,393.2645 C281.7879,407.5945 282.307,414.747 290.5,429 C296.286,439.065 318.727,452.188 339.874,462.857 " fill="none" id="RealConnection-backto-Socket" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="291.707,382.08,285.8048,386.2229,287.3589,393.2645,293.2611,389.1216,291.707,382.08" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="67" x="291.5" y="425.0669">rawSocket</text></g><!--reverse link RealConnection to Socket--><g id="link_RealConnection_Socket"><path codeLine="15" d="M345.8229,389.911 C355.7249,398.289 356.604,400.74 363.5,412 C372.216,426.232 376.734,444.57 379.063,458.906 " fill="none" id="RealConnection-backto-Socket-1" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="336.662,382.16,338.6588,389.0891,345.8229,389.911,343.8261,382.9818,336.662,382.16" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="42" x="371.5" y="425.0669">socket</text></g><!--reverse link ExchangeFinder to RealConnectionPool--><g id="link_ExchangeFinder_RealConnectionPool"><path codeLine="17" d="M183.3713,284.927 C190.8273,329.282 205.087,414.104 212.576,458.656 " fill="none" id="ExchangeFinder-backto-RealConnectionPool" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="181.382,273.093,178.432,279.6731,183.3713,284.927,186.3213,278.3469,181.382,273.093" style="stroke:#181818;stroke-width:1.0;"/></g><!--link RealConnection to RealConnectionPool--><g id="link_RealConnection_RealConnectionPool"><path codeLine="18" d="M287.136,382.135 C271.582,404.126 255.2506,427.215 239.7206,449.171 " fill="none" id="RealConnection-to-RealConnectionPool" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="232.791,458.968,239.5215,456.3794,239.7206,449.171,232.9902,451.7596,232.791,458.968" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="24" x="256.2223" y="401.9291">0..n</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8" x="227.9406" y="447.9718">1</text></g><!--reverse link ExchangeFinder to Address--><g id="link_ExchangeFinder_Address"><path codeLine="19" d="M147.3478,281.9433 C130.4058,299.8913 115.303,315.892 98.3727,333.828 " fill="none" id="ExchangeFinder-backto-Address" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="155.585,273.217,148.5576,274.8344,147.3478,281.9433,154.3752,280.3259,155.585,273.217" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Address to Dns--><g id="link_Address_Dns"><path codeLine="20" d="M72.7936,394.0685 C70.4694,416.0595 68.2548,437.012 65.9342,458.968 " fill="none" id="Address-backto-Dns" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="74.0548,382.135,69.4463,387.6814,72.7936,394.0685,77.402,388.5222,74.0548,382.135" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Dns to DnsSystem--><g id="link_Dns_DnsSystem"><path codeLine="21" d="M63.5,525.217 C63.5,543.1649 63.5,549.8918 63.5,567.8279 " fill="none" id="Dns-backto-DnsSystem" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="63.5,507.217,57.5,525.217,69.5,525.217,63.5,507.217" style="stroke:#181818;stroke-width:1.0;"/></g><!--SRC=[VL3H2W8X47ptA-GU0wDwZ0Z2YdegkYyGRol9rb2XWZw-E-qgoteGnzdPTNQuGGJfb-Z1IZXvOobZOxe1eTyulXSA2SzhPnUv5xW3qWBQOUp9pXLMOFCrRYgGQQdvc0kj2MbHe5U7XVSdhXMWZvNeHHcaHRy8cgBNxMBncf0CI7k8QdRO2Wa_l8HNhZ4LZ6wred7M_pVcgHgageyzcjzA8m_WwP1QSOxuhyf52Kd3plXU6wE_SejvCTO94MOQCcCdLMN1EVAu0pT5H-eJzwn1UNKUZdS0]--></g></svg>

<h2 id="备注"><a href="#备注" class="headerlink" title="备注"></a>备注</h2><p>https证书校验在<code>okhttp3.internal.tls.OkHostnameVerifier#verify(java.lang.String, javax.net.ssl.SSLSession)</code></p>

    </div>

    
    
    

    <footer class="post-footer">
          <div class="post-tags">
              <a href="/tags/okhttp/" rel="tag"># okhttp</a>
          </div>

        

          <div class="post-nav">
            <div class="post-nav-item">
                <a href="/posts/8e83ed63.html" rel="prev" title="okhttp详解系列二：重试重定向拦截器">
                  <i class="fa fa-angle-left"></i> okhttp详解系列二：重试重定向拦截器
                </a>
            </div>
            <div class="post-nav-item">
                <a href="/posts/73cf04e1.html" rel="next" title="okhttp详解系列六：服务请求拦截器 CallServerInterceptor">
                  okhttp详解系列六：服务请求拦截器 CallServerInterceptor <i class="fa fa-angle-right"></i>
                </a>
            </div>
          </div>
    </footer>
  </article>
</div>






</div>
  </main>

  <footer class="footer">
    <div class="footer-inner">

  <div class="copyright">
    &copy; 
    <span itemprop="copyrightYear">2024</span>
    <span class="with-love">
      <i class="fa fa-heart"></i>
    </span>
    <span class="author" itemprop="copyrightHolder">Jason</span>
  </div>
  <div class="powered-by">由 <a href="https://hexo.io/" rel="noopener external nofollow noreferrer" target="_blank">Hexo</a> & <a href="https://theme-next.js.org/pisces/" rel="noopener external nofollow noreferrer" target="_blank">NexT.Pisces</a> 强力驱动
  </div>

    </div>
  </footer>

  
  <div class="back-to-top" role="button" aria-label="返回顶部">
    <i class="fa fa-arrow-up fa-lg"></i>
    <span>0%</span>
  </div>

<noscript>
  <div class="noscript-warning">Theme NexT works best with JavaScript enabled</div>
</noscript>


  
  <script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js" integrity="sha256-XL2inqUJaslATFnHdJOi9GfQ60on8Wx1C2H8DYiN1xY=" crossorigin="anonymous"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/next-theme-pjax/0.6.0/pjax.min.js" integrity="sha256-vxLn1tSKWD4dqbMRyv940UYw4sXgMtYcK6reefzZrao=" crossorigin="anonymous"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/fancyapps-ui/5.0.24/fancybox/fancybox.umd.js" integrity="sha256-oyhjPiYRWGXaAt+ny/mTMWOnN1GBoZDUQnzzgC7FRI4=" crossorigin="anonymous"></script>
<script src="/js/comments.js"></script><script src="/js/utils.js"></script><script src="/js/motion.js"></script><script src="/js/next-boot.js"></script><script src="/js/pjax.js"></script>

  <script src="https://cdnjs.cloudflare.com/ajax/libs/hexo-generator-searchdb/1.4.1/search.js" integrity="sha256-1kfA5uHPf65M5cphT2dvymhkuyHPQp5A53EGZOnOLmc=" crossorigin="anonymous"></script>
<script src="/js/third-party/search/local-search.js"></script>


  <script class="next-config" data-name="mermaid" type="application/json">{"enable":true,"theme":{"light":"default","dark":"dark"},"js":{"url":"https://cdnjs.cloudflare.com/ajax/libs/mermaid/10.5.0/mermaid.min.js","integrity":"sha256-K7oJiQlDulzl24ZUFOywuYme1JqBBvQzK6m8qHjt9Gk="}}</script>
  <script type="module" src="/js/zenuml-definition-074a43fa.js"></script>
  <script type="module" src="/js/mermaid-zenuml.esm.min.mjs"></script>
  <script src="/js/third-party/tags/mermaid.js"></script>


  <script src="/js/third-party/fancybox.js"></script>



  




  

  <script class="next-config" data-name="enableMath" type="application/json">true</script><script class="next-config" data-name="mathjax" type="application/json">{"enable":true,"tags":"none","js":{"url":"https://cdnjs.cloudflare.com/ajax/libs/mathjax/3.2.2/es5/tex-mml-chtml.js","integrity":"sha256-MASABpB4tYktI2Oitl4t+78w/lyA+D7b/s9GEP0JOGI="}}</script>
<script src="/js/third-party/math/mathjax.js"></script>



</body>
</html>
